<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div></div>
</body>
<script>
    // let 关键字  块级作用域 不能重复声明
    if (true) {
        // var  a =1
        // let a  =2;
        // console.log(a)
    }
    // console.log(a)

    // console.log(b)
    // let b =19

    // var aa =10
    // if (true) {
    //     aa = 19
    //     let aa
    //     console.log(aa)
    // }

    // var arr =[]
    // for (let i = 0; i < 2; i++) {
    //     arr[i] = function () {
    //         console.log(i)
    //     };
    // }
    // arr[0]()
    // arr[1]()

    if (true) {
        const PI = 3.14
        // PI = 3.14111

        // const USER ={
        //     age:1
        // }
        // USER.age = 18
        // console.log(USER)

        const USER =[1,2,3]
        USER[0]= 2
        console.log(USER)

        // 数组解构
        let [aa,b,c,d] = USER

        // console.log(aa)
        // console.log(b)
        // console.log(c)
        // console.log(d)

        // let user = {
        //     username: 'zhangsan',
        //     age: 18
        // }
        // let {username : name,age} = user
        // console.log(name)
        // console.log(age)

        // function fn() {
        //     console.log('hah')
        // }
        // const fn =  ()=>{console.log('hah')}
        // fn()
        // const sum =  (a=10)=> a
        // console.log(sum(1))

        // const obj = { name: '张三'}
        // function fn () {
        //     console.log(this);//this 指向 是obj对象
        //     return () => {
        //         console.log(this);//this 指向 的是箭头函数定义的位置，那么这个箭头函数定义在fn里
        //       //  面，而这个fn指向是的obj对象，所以这个this也指向是obj对象
        //     }
        // }
        // console.log(this)
        // const resFn = fn();
        // resFn();

        // var age = 100;
        // var obj = {
        //     age: 20,
        //     // say: function () {
        //     //     alert(this.age)
        //     // }
        //     // say(){alert(this.age)}
        //     say: ()=>{alert(this.age)}
        // }
        // obj.say();//箭头函数this指向的是被声明的作用域里面，而对象没有作用域的，所以箭头函数虽然在对象
        // //中被定义，但是this指向的是全局作用域

        // function sum (first, ...args) {
        //     console.log(first); // 10
        //     console.log(args); // [20, 30]
        // }
        // sum(10, 20, 30,40)

        let ary = [1, 2,2, 3]
        // // ...ary // 1, 2, 3
        // console.log(...ary); // 1 2 3,相当于下面的代码
        // console.log(1,2,3);

        // var div = document.getElementsByTagName('div');
        // console.log(div)
        // console.log([...div])

        // console.log(ary.findIndex(item=>item ===5))


        // let name = ()=>'张三'
        // let sayHello = `hello,my name is ${name}`; // hello, my name is zhangsan
        // console.log(sayHello)

        // let map1 = new Map(); // {size:0}
        // let map2 = new Map([['name','jack']]); // {'name' => 'jack'}
        // let map3 = new Map([['name','jack'],[{age:18},'bella']]); // {'name' =>
        // //'jack', {age:18} => 'bella'}
        // console.log(map1)
        // console.log(map2)
        // map3.set('age',18)
        // console.log(map3.has('age'))

    //     let map = new Map([['name','jack'],['age',18]]); // {'name' => 'jack',
    //     //'age' => 18}
    // map.forEach((value,key) => {
    //     console.log(value,key) // 'jack' 'name' 18
    //     //'age'
    // })
    // }
    let user = {
        age: 18
     }

     function teach(name, age) {
         this.name = name
         this.age = age
     }
     // var teach1 = new teach('lisi',30);
     //    console.log(teach1)
     //
     //    let target = {a:1}
     //    let source1 = {b:2}
     //    let source2 = {a:4,c:3}
     //    let assign = Object.assign(target,source1,source2);
     //    console.info(assign)


        class Stu {
            constructor(sn,age) {
                this.sn = sn
                this.age = age
            }
            fn(){console.log(this.sn,this.age)}
        }
        var stu = new Stu("sn",12);
        stu.fn()



        class Fa{
            constructor(fname) {
                this.fname = fname
            }
            say(){
                console.log(this.fname)
            }
        }
        class Son extends Fa{
            constructor(name) {
                super(name);
                this.name = name

            }
            say() {
                console.log(this.fname,1213)
            }
        }

        var son = new Son('zhangsna');
        son.say()



    }
    // 应该讲 extends





</script>
<script src="main.js" type="module"></script>
<script src="jquery.js"></script>
<script src="axios.min.js"></script>
<script>
    // $.ajax({
    //     type: 'get',
    //     url: 'https://api.apiopen.top/api/sentences',
    //     data:'',
    //     dataType: 'json',
    //     success: function (res) {
    //         console.log(res)
    //     },
    // })

    // axios.get('https://api.apiopen.top/api/getImages',{
    //     params:{
    //         type: 'food',
    //         page: 1,
    //         size :10
    //     }
    // }).then(res=>{
    //     console.log(res.data)
    // })

    // axios.post('https://api.apiopen.top/api/login',{
    //     account: "309324904@qq.com",
    //     password: "123456"
    // }).then(res=>{
    //     console.log(res.data)
    // })

    // async function fn() {
    //    let res =  await axios.post('https://api.apiopen.top/api/login',{
    //         account: "309324904@qq.com",
    //         password: "123456"
    //     })
    //     console.log(res.data)
    // }
    // fn()

    // (()=>{console.log(111)})()

</script>
</html>